import tkinter as tk
from tkinter import messagebox
import json



# 文件路径
TODO_FILE = "todo_list.json"

# 初始化一个空的待办事项列表
todo_list = []


# 函数：保存待办事项到文件
def save_todo_list():
    with open(TODO_FILE, 'w') as f:
        json.dump(todo_list, f)


# 函数：加载文件中的待办事项
def load_todo_list():
    global todo_list
    try:
        with open(TODO_FILE, 'r') as f:
            todo_list = json.load(f)
    except FileNotFoundError:
        todo_list = []


# 函数：显示待办事项
def display_todo_list():
    if not todo_list:
        messagebox.showinfo("待办事项", "当前没有待办事项。")
    else:
        todo_str = "\n".join(f"{index + 1}. {item}" for index, item in enumerate(todo_list))
        messagebox.showinfo("待办事项列表", todo_str)


# 函数：添加待办事项
def add_todo_item():
    item = todo_entry.get()
    if item:
        todo_list.append(item)
        save_todo_list()
        messagebox.showinfo("添加成功", f"已添加待办事项：'{item}'")
        todo_entry.delete(0, tk.END)
    else:
        messagebox.showwarning("输入为空", "请输入待办事项内容。")


# 函数：删除待办事项
def delete_todo_item():
    if not todo_list:
        messagebox.showwarning("无待办事项", "当前没有待办事项。")
        return

    try:
        index = int(todo_index_entry.get()) - 1
        if 0 <= index < len(todo_list):
            deleted_item = todo_list.pop(index)
            save_todo_list()
            messagebox.showinfo("删除成功", f"已删除待办事项：'{deleted_item}'")
            todo_index_entry.delete(0, tk.END)
        else:
            messagebox.showwarning("输入无效", "输入的序号无效。")
    except ValueError:
        messagebox.showwarning("输入无效", "请输入一个有效的数字序号。")


# 函数：显示关于信息
def show_about_info():
    messagebox.showinfo("关于", "这是一个简单的待办事项小程序。\n作者：Your Name")


# 函数：显示提醒窗口
def show_reminder():
    messagebox.showinfo("提醒", "这是一个提醒窗口。")
    inputday.grid(column=1, row=2)


# 创建主窗口
root = tk.Tk()
root.title("待办事项小程序")

# 加载文件中的待办事项数据
load_todo_list()

# 添加待办事项输入框和按钮
todo_label = tk.Label(root, text="待办事项：")
todo_label.pack(pady=10)
todo_entry = tk.Entry(root, width=50)
todo_entry.pack()

add_button = tk.Button(root, text="添加", command=add_todo_item)
add_button.pack(pady=5)

# 显示和删除待办事项的部分
display_button = tk.Button(root, text="显示待办事项", command=display_todo_list)
display_button.pack(pady=10)

todo_index_label = tk.Label(root, text="待删除项序号：")
todo_index_label.pack()

todo_index_entry = tk.Entry(root, width=50)
todo_index_entry.pack()

delete_button = tk.Button(root, text="删除", command=delete_todo_item)
delete_button.pack(pady=5)

# 菜单栏
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)


# 添加菜单栏中的选项
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu. add_command(label='新建', accelerator="Ctrl+N", command='')
file_menu. add_command(label='打开', accelerator="Ctrl+0", command='')
file_menu. add_command(label='保存', accelerator="Ctrl+S", command='')
file_menu. add_command(label='另存为', accelerator="Shift+Ctrl+S", command='')
file_menu. add_separator()
file_menu. add_command(label='退出', accelerator="Alt+F4", command='')
menu_bar. add_cascade(label='文件', menu=file_menu)

editor_menu=tk.Menu(menu_bar, tearoff=0)
editor_menu.add_command(label='撤销',accelerator="Ctrl+Z",command='')
editor_menu.add_command(label='恢复',accelerator="Ctrl+Y",command='')
editor_menu.add_separator()
editor_menu.add_command(label='剪切',accelerator="Ctrl+X",command='')
editor_menu.add_command(label='复制',accelerator="Ctrl+C",command='')
editor_menu.add_command(label='粘贴',accelerator="Ctrl+V",command='')
editor_menu.add_separator()
editor_menu.add_command(label='查找',accelerator="Ctrl+F",command='')
editor_menu.add_separator()
editor_menu.add_command(label='全选',accelerator="Ctrl+A",command='')
menu_bar. add_cascade(label='编辑', menu=editor_menu)
view_menu= tk.Menu(menu_bar, tearoff=0)
menu_bar. add_cascade(label='视图', menu=view_menu)
rimind_menu= tk.Menu(menu_bar, tearoff=0)
menu_bar. add_cascade(label='提醒', menu=rimind_menu)
root.config(menu=menu_bar)
# file_menu.add_command(label="退出", command=root.quit)

help_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="帮助", menu=help_menu)
help_menu.add_command(label="关于", command=show_about_info)

root.mainloop()
